Skip to content

research: verify native margin repair with fixed-source ConPTY pairs - #98

Closed
JavaZeroo wants to merge 1 commit into
research/conpty-build-r56from
research/conpty-native-r56
Closed

JavaZeroo wants to merge 1 commit into
research/conpty-build-r56from
research/conpty-native-r56

Conversation

@JavaZeroo

@JavaZeroo JavaZeroo commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

固定上游 ConPTY 在主/备用屏共用 margin 状态时,原175B用例的末端画面可以正确,而原生 CHAR_INFO 的 final 仍错误。这个 PR 加入默认关闭、与产品配置隔离的 source 探针及严格身份检查,用同源 baseline/patched 证明局部补丁使两种尺寸的原生四阶段从红变绿。

margin探针复用原5秒child wait、15秒外部期限、5秒cleanup和独立oracle,API生命周期探针保留原20秒外部期限;官方loader仍只接受原双SHA。source入口另验证固定构建summary、variant字段/类型及双文件身份,报告独立后端identity。产品后端配置没有切换。

验证

  • 同源构建40449292015:baseline focused 1 fail/exit1;patched focused1/1、full adapter412/412零skip。baseline完整adapter未验。构建来自PR research: 在隔离 Windows 构建固定 ConPTY margin 候选 #96,产物与清单已核对。
  • 本机Windows11 x64 build26200,原175B × 80×24/12×7 × VT-on/off × baseline/patched,共8次预定执行。两种尺寸native预期red→四阶段green,实际运输回放后两版末端正确;VT-off原生格/文本/光标与末端文本不变。全部自然退出37、EOF109、Job0,无force。
  • 15个真实API/身份场景、8个清单拒绝通过,涵盖create/resize/模块生命期、官方/source互拒、未知/缺失/相对路径、双文件篡改、variant交换、数字冒充布尔与summary篡改。两版DLL字节相同,未虚构可识别的“混用相同DLL”反例。
  • 原margin/oracle/cleanup13/13、原system/official loader14/14通过;这两项仅保留会话命令输出,未另存stdout日志。原生8/15场景的原件另存,限制已写入JSON。
  • Standards:硬规则0、判断性异味0;Spec:0。两路对源码、公开字段、原生捕获、3个artifact、双文件、源码/探针/trace SHA及许可做独立只读复核,审查至本PR相同tree 6cc9ca72c616ba085d650aff8f3ad1c958cad65a。未用审查代替真实运行。
  • 研究与复验入口:conpty-source-margin-runtime.md;脱敏验证清单。

范围与关联

Stacked Draft,base为PR #96的 research/conpty-build-r56,不是main。PR #50继续Draft。#56/#41仍开放:显式样式、历史、resize、查询/API、完整产品及维护升级仍待验证;flags0 margin和flags24 API不拼成联合验收。本实验不证明WindTerm等价、性能或实际呈现,也未批准产品选型。

父分支push candidate的原20秒退出失败已独立记录在 #97;同HEAD其他绿色检查不覆盖此失败。本PR的实际常规CI如下,没有重跑失败job:

配置/触发 结果
PR default 40453297655 成功;Windows CTest52/52(260.27s)、Linux33/33(14.75s),两端ASCII/Unicode回放成功
PR candidate 40453298103 成功
push candidate 40453238184 成功
push default 40453238227 失败;Windows51/52(300.54s),ui-clipboard-system第一轮触发原launcher45秒期限,详见 #99

#99 的完整artifact及目标原件已核验,确切停滞阶段仍未知;该次失败不由PR default或candidate成功覆盖。PR继续Draft,#97/#99均作为 #38 的原生子项及阻塞。

后续 Draft PR #100 在独立 controls 输入完成12次主屏/default-alt/repeat-alt原生对照;它补充默认区域与重复h/l的限定证据,不扩充本PR原175B矩阵,也不关闭#56/#41或覆盖上述CI失败。

Add isolated source pair probes and bounded identity/lifecycle checks. Preserve the original 175-byte workload, native oracle and deadlines. Record the two-grid red-to-green comparison and VT-off controls, with full product and cross-contract limits remaining open.

Related #56, #41. Reviewed local tree 6cc9ca7.
@JavaZeroo

Copy link
Copy Markdown
Owner Author

关闭原因:本 PR 挂在已被 main 取代的 ConPTY 后端上,对 main 冲突 16 处。

其结论(docs/research/conpty-source-margin-runtime.md)与固定验证结果已在 #261 摘取入库。backend_probe.cpp 等旧后端实现不迁移。

@JavaZeroo JavaZeroo closed this Oct 31, 2026
JavaZeroo added a commit that referenced this pull request Oct 31, 2026
这些分支挂在已被 main 取代的 ConPTY 后端上,整体重基不可行(merge-tree 实测 16 处冲突),但它们的结论文档与固定验证身份在 main 上缺失。

本次只新增、不修改 main 已有文件(diff 全部为 A,0 处修改):

- docs/research/ 14 份:ConPTY 源 margin 的 runtime/controls/styles、experimental backend、
  native viewport resize、resize replay cost、Vim msys input/runtime、WindTerm styled margin reference、
  workflow record checkpoint、workspace native viewport、clipboard stage observation
- experiments/conpty/results/ 40 个固定结果与 validation 身份
- experiments/shell/results/ 25 个
- research/ui/results/ 2 个

代码侧(backend_probe.cpp、margin_controls.py 等基于旧后端的实现)不摘取,旧后端已由 main 的
cmake/ConptyBackend.cmake 取代。

摘取后即可关闭 #96/#98/#100/#102/#103/#101,并在各自评论中指向这些新位置。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant